﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using COFE.Core.Plugin;
using COFE.Core;
using COFE.Core.EntryType;
using COFE.Core.Filter;
using COFE.Core.Utils;

namespace COFE.IO
{
    public static class COFEIOShared
    {

        public static void Register()
        {
            COFEShared.VolumeRegistrar.RegisterFactory(new COFE.IO.FSI.FileSystemFactory("FSI"));
            COFEShared.VolumeRegistrar.RegisterFactory(new COFE.IO.FSIEX.FileSystemExFactory("FSIEX"));
            COFEShared.VolumeRegistrar.RegisterFactory(new COFE.IO.ISG.IsolatedStorageFactory("ISG"));
            COFEShared.VolumeRegistrar.RegisterFactory(new COFE.IO.SZ.SevenZipFactory("SZ"));

            COFEShared.SecondaryPropertyProviderManager.Register<IEntryList>(
             new COFE.IO.SZ.SevenZipActionProvider());

            COFEShared.SecondaryPropertyProviderManager.Register(
                new COFE.Core.Lister.ThumbnailPropertyProvider());

            FilterUtils2<IEntryFilter>.RegisterIconProvider(typeof(FileTypeEntryFilter), ShellIconProvider.Instance);
        }
    }
}
